package com.example.myblogserver.service;

import com.example.myblogserver.dto.AddArticleDTO;
import com.example.myblogserver.dto.UpdateArticleDTO;
import com.example.myblogserver.model.Articles;

import java.util.List;

public interface ArticleService {

    /**
     * 新增文章
     * @param addArticleDTO
     */
    void addArticle(AddArticleDTO addArticleDTO);

    /**
     * 获取全部文章列表
     *
     */
    List<Articles> getAllArticles();

    /**
     * 获取指定分类下的文章列表
     *
     * @param categoryId
     */
    List<Articles> getArticlesByCategoryId(Long categoryId);

    /**
     * 获取指定文章
     *
     * @param id
     */
    Articles getArticleById(Long id);

    /**
     * 删除指定文章
     *
     * @param id
     */
    void deleteArticleById(Long id);

    /**
     * 获取分类文章列表
     * @param categoryId 可选分类ID
     * @param pageSize 分页大小
     * @param currentPage 当前页码
     * @return
     */
    List<Articles> getArticlesByCategoryIdAndPage(Long categoryId, Integer pageSize, Integer currentPage);

        /**
     * 更新文章
     * @param updateArticleDTO 文章数据
     */
    void updateArticle(UpdateArticleDTO updateArticleDTO);
    /**
     * 获取文章分类
     * @return
     */
    List<com.example.myblogserver.vo.CategoryVO> getArticleCategory();

}
